在JS中,還有非常方便的一點是,在需要時,編譯器可以幫忙把資料型態轉為正確的資料型態。
讓我們直接來看例子吧!
let a = 30;
console.log(a == 30);
console.log(a == 25);
console.log(a == '30');
印出的結果為:
順帶一提這邊的true和false就是前面提過的boolean布林值喔~
印出的前兩行大家應該沒有問題,但看到第三個也是true可能有些人就會開始覺得疑惑,數值怎麼會等於字串呢?其實這是因為JS可以知道這邊我們應該會需要把'30'轉換成數值的型態,所以就直接先幫我們轉換完了再進行比較,所以才會印出true喔!
講到這邊就可以再介紹一個JS才有的operation,叫做strict equality,個人會翻譯為「限制型比較」。會比原本的 == 或 != 再多一個 = ,變成 === 和 !== ,它的功用是在比較時也會根據型態來比較,就不會像前面的程式一樣會將字串轉成數值了,那我們再用這個方式做一次~
let a = 30;
console.log(a === 30);
console.log(a === 25);
console.log(a === '30');
console.log(a !== '30');
印出的結果:
可以看到第三個結果和上一次的不一樣了喔~
最後再讓我們學一下要怎麼自行轉換資料型態吧!
看看下面的例子:
let price = '800';
console.log(price + 50);
我希望印出的是850,但卻印出80050,這是因為編譯器這邊使用的是字串+數值的方式,才會顯示這樣的結果。
這個問題我們可以透過price = Number(price)轉換型態來解決!(注意N要大寫!)
let price = '800';
price = Number(price);
console.log(price + 50);
這樣結果就變成我們想要的850囉~~
今天的分享到這邊~我們明天再見!